
// 公共模块
import { getHeadCategory } from '@/api/category'
const category = {
  namespaced: true,
  // 定义数据

  state: () => {
    return {
      categoryList: []
    }
  },
  // 定义修改数据的方法
  mutations: {
    setCategoryList (state, list) {
      state.categoryList = list
    }
  },
  // 定义异步方法
  actions: {
    // vuex优化分类数据-基于vuex管理数据的一般模式
    async getCategory (ctx) {
      // 发送请求获取数据，调用mutations函数 存入数据
      const res = await getHeadCategory()
      ctx.commit('setCategoryList', res.data.result)
    }
  },
  // 基于state的计算属性
  // 数据的二次处理 计算属性
  getters: {
    formatList (state) {
      return state.categoryList.map((item) => {
        return {
          id: item.id,
          name: item.name,
          goods: item.goods, // 导入goods字段
          children: item.children.slice(0, 2)
        }
      })
    }
  }

}

// 导出
export default category
